Java零基础-方法递归

递归——方法自身调用自身

1
2
3
a() {
a();
}

递归必须有结束条件,否则一定会发生栈内存溢出错误(java.lang.StackOverflowError);

即使有了结束条件,也可能发生溢出错误,因为递归的太深了;

递归可以不使用时,尽量别用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class HelloWorld {

public static void main(String[] args) {
int n = 5;
int result = method(n);
System.out.println(result);
}

// 虽然这块代码重复调用,但是每次调用都会在 栈内存 新分配一块所属的内存空间
public static int method(int n) {
if (n == 1) {
return 1;
}
return n * method(n - 1);
}

}

image-20200209202045292